<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>12_entends_prototype01</title>
	<meta name="author" content="Stark" />
	<!-- Date: 2018-10-20 -->
	<script type="text/javascript">
		function Parent(name) {
			this.color = ["red","blue"];
			this.name = name;
			this.say = function() {
				alert(this.name);
			}
		}
		/**
		 * 由于使用伪造的方式，不会完成Child的原型指向Parent
		 * 所以say方法不存在，解决方案是，将这个方法放置到
		 * Parent中使用this来创建，但是此时每个对象中又存在say
		 * 这样空间占用太大，所以也不会单独使用伪造的方式实现继承
		 */
		Parent.prototype.say = function() {
			alert(this.name);
		}
		
		function Child(name,age) {
			this.age = age;
			/**
			 * 使用伪造的方式就可以把子类的构造函数参数传递到
			 * 父类中
			 */
			Parent.call(this,name);
		}
		
		var c1 = new Child("Leno",12);
		var c2 = new Child("Ada",22);
		alert(c1.name+","+c1.age);
		alert(c2.name+","+c2.age);
	</script>
</head>
<body>

</body>
</html>

